package online.abor;

/**
 * 一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在 第10次落地时，共经过多少米？第10次反弹多高？
 */
public class Topic10_DropBall {
    /**
     * 求小球在meter位置自由落下，第count次落地经过的距离
     * @param meter 初始位置
     * @param count 第count次落地
     * @return 经过的距离
     */
    public static double traveledDistance(int meter,int count){
        double allMeter = 0D;
        double onceMeter = meter;
        for (int i=0;i<count;i++){
            allMeter += onceMeter;
            System.out.println("第"+(i+1)+"次落下：经过"+onceMeter+"米，总共经过"+allMeter+"米");
            onceMeter /= 2;
        }
        return allMeter;
    }
    public static double  bounceHeight(int meter,int count){
        return meter/Math.pow(2, count);
    }
    public static double traveledDistance_2(int meter,int count){
        double allMeter = 0D;
        while ((count--)>0){
            allMeter += bounceHeight(meter, count);
        }
        return allMeter;
    }
}
